﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using YunBox2.Contracts.Core;
using YunBox2.Contracts.FoundationModels;
namespace YunBox2.Contracts.VenditionModels
{
    [DataContract]
    public class CreditLimit:BizObject
    {
        [DataMember]private decimal[] _fixedLimits;
        [DataMember]
        private decimal _fixedLimit1;
        [DataMember]
        private decimal _fixedLimit2;
        [DataMember]
        private decimal _fixedLimit3;
        [DataMember]
        private decimal _fixedLimit4;
        [DataMember]
        private decimal _fixedLimit5;
        [DataMember]
        private decimal _fixedLimit6;
        [DataMember]
        private decimal _fixedLimit7;
        [DataMember]
        private decimal _fixedLimit8;
        [DataMember]
        private decimal _fixedLimit9;
        [DataMember]
        private decimal _fixedLimit10;
        [DataMember]
        private decimal _fixedLimit11;
        [DataMember]
        private decimal _fixedLimit12;
        [DataMember]
        private decimal _fixedLimit;

        [DataMember]
        private decimal _floatLimit;
        [DataMember]
        private DateTime? _floatLimitExpiryDate;

        [DataMember]private Customer _customer;

        public CreditLimit()
        {
            FixedLimits = new decimal[] { FixedLimit1, FixedLimit2, FixedLimit3, FixedLimit4, FixedLimit5, FixedLimit6, FixedLimit7, FixedLimit8, FixedLimit9, FixedLimit10, FixedLimit11, FixedLimit12, FixedLimit };

        }

        public virtual Customer Customer
        {
            get
            {
                return _customer;
            }
            set
            {
                _customer = value;
            }
        }

        public virtual decimal FloatLimit
        {
            get
            {
                return _floatLimit;
            }
            set
            {
                _floatLimit = value;
            }
        }

        public virtual DateTime? FloatLimitExpiryDate
        {
            get
            {
                return _floatLimitExpiryDate;
            }
            set
            {
                _floatLimitExpiryDate = value;
            }
        }


        public virtual decimal[] FixedLimits
        {
            get
            {
                return _fixedLimits;
            }
            private set
            {
                _fixedLimits = value;
            }
        }

        public virtual  decimal FixedLimit1
        {
            get
            {
                return _fixedLimit1;
            }
            set
            {
                _fixedLimit1 = value;
            }
        }

        public virtual decimal FixedLimit2
        {
            get
            {
                return _fixedLimit2;
            }
            set
            {
                _fixedLimit2 = value;
            }
        }

        public virtual decimal FixedLimit3
        {
            get
            {
                return _fixedLimit3;
            }
            set
            {
                _fixedLimit3 = value;
            }
        }

        public virtual decimal FixedLimit4
        {
            get
            {
                return _fixedLimit4;
            }
            set
            {
                _fixedLimit4 = value;
            }
        }

        public virtual decimal FixedLimit5
        {
            get
            {
                return _fixedLimit5;
            }
            set
            {
                _fixedLimit5 = value;
            }
        }

        public virtual decimal FixedLimit6
        {
            get
            {
                return _fixedLimit6;
            }
            set
            {
                _fixedLimit6 = value;
            }
        }

        public virtual decimal FixedLimit7
        {
            get
            {
                return _fixedLimit7;
            }
            set
            {
                _fixedLimit7 = value;
            }
        }

        public virtual decimal FixedLimit8
        {
            get
            {
                return _fixedLimit8;
            }
            set
            {
                _fixedLimit8 = value;
            }
        }

        public virtual decimal FixedLimit9
        {
            get
            {
                return _fixedLimit9;
            }
            set
            {
                _fixedLimit9 = value;
            }
        }

        public virtual decimal FixedLimit10
        {
            get
            {
                return _fixedLimit10;
            }
            set
            {
                _fixedLimit10 = value;
            }
        }

        public virtual decimal FixedLimit11
        {
            get
            {
                return _fixedLimit11;
            }
            set
            {
                _fixedLimit11 = value;
            }
        }

        public decimal FixedLimit12
        {
            get
            {
                return _fixedLimit12;
            }
            set
            {
                _fixedLimit12 = value;
            }
        }

        public virtual decimal FixedLimit
        {
            get
            {
                return _fixedLimit;
            }
            set
            {
                _fixedLimit = value;
            }
        }
    }
}
